Einlesen lokaler Datendateien
Humboldt-Universität zu Berlin
Di. den 04.06.2024
Heute werden wir lernen, wie man:
.csv) erstellen und speichernreadr importierenBis jetzt haben wir gelernt, wie man…
dplyr-Verben zu verarbeitenpacman
pacman anstelle von install.packages() und library zu benutzen
p_load() nimmt Paketnamen als Argumentelibrary())install.packages() + library())tidyverse geladen und die neuen Pakete janitor und here installiert und geladen
?janitor und ?here in der Konsole ein.daten-Ordnerdaten hinzu (der genau gleich geschrieben ist).RProjects
Es gibt viele verschiedene Dateitypen, die Daten annehmen können, z. B. .xlsx, .txt, .csv, .tsv
.csv ist der typischste Dateityp und steht für: Comma Separated Values
So sieht eine einfache CSV-Datei aus, wenn man sie als Rohtext betrachtet
Student ID,Full Name,favourite.food,mealPlan,AGE
1,Sunil Huffmann,Strawberry yoghurt,Lunch only,4
2,Barclay Lynn,French fries,Lunch only,5
3,Jayendra Lyne,N/A,Breakfast and lunch,7
4,Leon Rossini,Anchovies,Lunch only,
5,Chidiegwu Dunkel,Pizza,Breakfast and lunch,five
6,Güvenç Attila,Ice cream,Lunch only,6
Abbildung 1: Source: Wickham et al. (2023) (all rights reserved)
Abbildung 2: Klicken Sie hier zum Hinzufügen und Herunterladen der Tabelle
groesse_geburtstag.csv auf Ihrem Computer, direkt in einem Ordner namens daten in unserem ProjektverzeichnisAufgabe 1: Saving a CSV
Beispiel 1
daten in Ihrem Projektordner (falls Sie das nicht schon getan haben).daten Ordner als groesse_geburtstag.csv.daten-Ordner und überprüfen Sie, ob die CSV-Datei dort ist.readr
müssen wir nun die Daten einlesen
wir müssen eine Funktion verwenden, die CSV-Daten liest, und angeben, wo sich die Daten in unserem RProject-Ordner befinden
Das readr-Paket (Teil von tidyverse) kann die meisten Datentypen einlesen und hat mehrere Funktionen für verschiedene Datentypen
| Größe | Geburtsmonat | L1 | Haustier | Was für ein Haustier? |
|---|---|---|---|---|
| 171 | 5 | Englisch | Lola | Hundin |
| 168 | 11 | Deutsch | keine | keine |
| 182 | 4 | Deutsch | N/A | NA |
| 190 | 8 | Deutsch | Knut | Kater |
| 170 | 10 | Deutsch | Emma | Hundin |
| 163 | 2 | Deutsch | Üzgür | Kater |
| 164 | 7 | Italienisch | Fipsy | Katze |
| 167 | 12 | Schwedisch | Anna | Fisch |
| 189 | 10 | Norwegisch | Arvid | Papagei |
Aufgabe 2: readr
Beispiel 2
df_groesse.
df_ ist die Abkürzung für DataFrame; es ist eine gute Idee, ein Präfix vor Objektnamen zu verwenden, damit wir wissen, was jedes Objekt enthältread_csv werden einige Informationen in der Konsole ausgegeben. Was wird gedruckt?summary() oder head()
here
daten zu finden ist?here() verschachtelnhere() startet, führen Sie here() aus[1] "/Users/danielapalleschi/Documents/IdSL/Teaching/SoSe24/B.A./r4ling_sose2024"
here packageImage source: Allison Horst (all rights reserved)
NA oder N/A Werte bemerkt
N/A wurde als Text in einer unserer Beobachtungen geschrieben, und so liest R es als solchesNA in R bezieht sich auf fehlende Daten (“Nicht verfügbar”)N/A in unseren df_groesse-Daten nicht wirklich als fehlender Wert gelesen wird.na = für die Funktion read_csv() verwenden, das der Funktion read_csv() mitteilt, welche Werte sie mit fehlenden Werten gleichsetzen soll# A tibble: 6 × 5
Größe Geburtsmonat L1 Haustier `Was für ein Haustier?`
<dbl> <dbl> <chr> <chr> <chr>
1 171 5 Englisch Lola "Hundin"
2 168 11 Deutsch keine "keine"
3 182 4 Deutsch <NA> ""
4 190 8 Deutsch Knut "Kater"
5 170 10 Deutsch Emma "Hundin"
6 163 2 Deutsch Üzgür "Kater"
"" war, wird als NA gelesenread_csv() leere Zellen als NA liest
read_csv() anweisen, mehr als eine Art von Eingabe als NA zu lesen, d.h. wir wollen es anweisen, "" und "N/A" als NA zu lesenc()
NA’s einschließen# A tibble: 6 × 5
Größe Geburtsmonat L1 Haustier `Was für ein Haustier?`
<dbl> <dbl> <chr> <chr> <chr>
1 171 5 Englisch Lola Hundin
2 168 11 Deutsch <NA> <NA>
3 182 4 Deutsch <NA> <NA>
4 190 8 Deutsch Knut Kater
5 170 10 Deutsch Emma Hundin
6 163 2 Deutsch Üzgür Kater
`Was für ein Haustier?`)
clean_names() aus dem Paket janitor, das wir bereits geladen haben# A tibble: 9 × 5
grosse geburtsmonat l1 haustier was_fur_ein_haustier
<dbl> <dbl> <chr> <chr> <chr>
1 171 5 Englisch Lola Hundin
2 168 11 Deutsch <NA> <NA>
3 182 4 Deutsch <NA> <NA>
4 190 8 Deutsch Knut Kater
5 170 10 Deutsch Emma Hundin
6 163 2 Deutsch Üzgür Kater
7 164 7 Italienisch Fipsy Katze
8 167 12 Schwedisch Anna Fisch
9 189 10 Norwegisch Arvid Papagei
head(df_groesse) ausführen, sehen Sie dann die bereinigten Spaltennamen?<- zuweisen.# A tibble: 6 × 5
Größe Geburtsmonat L1 Haustier `Was für ein Haustier?`
<dbl> <dbl> <chr> <chr> <chr>
1 171 5 Englisch Lola Hundin
2 168 11 Deutsch keine keine
3 182 4 Deutsch N/A <NA>
4 190 8 Deutsch Knut Kater
5 170 10 Deutsch Emma Hundin
6 163 2 Deutsch Üzgür Kater
Derzeit gibt es 2 Pipes, die in R verwendet werden können.
magrittr-Package-Pipe: %>%
|>
Cmd/Ctrl + Shift/Strg + M verwenden, um eine Pipe zu erzeugenAufgabe 3: pipes
Beispiel 3
groesse_geburtstag.csv erneut mit festen NAs und dann
clean_names() für den Datensatz aufzurufen, und dann
groesse_geburtstag.csv erneut mit festen NAs, speichern Sie ihn als Objekt df_groesse, und dann
clean_names() auf den Datensatz anzuwenden.numerische Daten
as_factor()$ verwenden, um eine Spalte in einem Datenrahmen zu indizieren:tidyverse und die Funktion mutate() verwendenreadr hat weitere Funktionen, die ebenfalls einfach zu benutzen sind, man muss nur wissen, wann man welche benutzt
read_csv2() liest Semikolon-getrennte csv-Dateien (;)
, als Dezimaltrennzeichen verwenden (wie Deutschland)read_tsv() liest Tabulator-getrennte Dateien
Die Funktion read_delim() liest Dateien mit beliebigen Trennzeichen ein.
delim = an (z.B. read_delim(groesse_geburtstag.csv, delim = ","))Heute haben wir gelernt, wie man…
readr importiert ✅Lassen Sie uns nun dieses neue Wissen anwenden.
Wir wollen nun üben, das Paket readr zu verwenden und unsere Daten zu verarbeiten.
Hergestellt mit R version 4.4.0 (2024-04-24) (Puppy Cup) und RStudioversion 2023.12.1.402 (Ocean Storm).
R version 4.4.0 (2024-04-24)
Platform: aarch64-apple-darwin20
Running under: macOS Ventura 13.2.1
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.12.0
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] magick_2.8.3 here_1.0.1 janitor_2.2.0 lubridate_1.9.3
[5] forcats_1.0.0 stringr_1.5.1 dplyr_1.1.4 purrr_1.0.2
[9] readr_2.1.5 tidyr_1.3.1 tibble_3.2.1 ggplot2_3.5.1
[13] tidyverse_2.0.0
loaded via a namespace (and not attached):
[1] utf8_1.2.4 generics_0.1.3 stringi_1.8.3 hms_1.1.3
[5] digest_0.6.35 magrittr_2.0.3 evaluate_0.23 grid_4.4.0
[9] timechange_0.3.0 fastmap_1.1.1 rprojroot_2.0.4 jsonlite_1.8.8
[13] fansi_1.0.6 scales_1.3.0 cli_3.6.2 rlang_1.1.3
[17] crayon_1.5.2 bit64_4.0.5 munsell_0.5.1 withr_3.0.0
[21] yaml_2.3.8 tools_4.4.0 parallel_4.4.0 tzdb_0.4.0
[25] colorspace_2.1-0 pacman_0.5.1 vctrs_0.6.5 R6_2.5.1
[29] lifecycle_1.0.4 snakecase_0.11.1 bit_4.0.5 vroom_1.6.5
[33] pkgconfig_2.0.3 pillar_1.9.0 gtable_0.3.5 Rcpp_1.0.12
[37] glue_1.7.0 xfun_0.43 tidyselect_1.2.1 rstudioapi_0.16.0
[41] knitr_1.46 htmltools_0.5.8.1 rmarkdown_2.26 compiler_4.4.0
Woche 8 - Datenimport